package com.nlgc365.designpattern.Chapter04_Pattern.Behavior.P07_Visitor.Iteration01;

import java.util.ArrayList;
import java.util.List;

/**
 * 案例: 操作验证
 */
public class Application {
    public static void main(String[] args) {
        // 测试初始化
        List<ResourceFile> files = new ArrayList<>();
        files.add(new PPTResourceFile("file1.ppt"));
        files.add(new PDFResourceFile("file2.pdf"));
        files.add(new WordResourceFile("file3.docx"));
        // 创建业务类
        Extractor extractor = new Extractor();

        // 开始执行抽取业务
        for (ResourceFile file : files) {
            // file.extract2Txt();  // (这里在迭代1中删除, 因为数据类中将业务功能抽取到具体业务类中实现了)
            // extractor.extract2Txt(file); // 在迭代1中添加该行代码, 由业务类来执行指定业务功能.
            // 但是上一行代码有个编译问题, java语法约束重载必须静态绑定编译时就确定数据类型, 而不支持运行时动态绑定确定类型.
        }
    }
}
